#include "lv_app.h"



static void sw_event_cb(lv_event_t* e)
{
    lv_event_code_t code = lv_event_get_code(e); // 获取事件code
    lv_obj_t* sw = lv_event_get_target(e);   //获取目标事件对象
    //if (code == LV_EVENT_VALUE_CHANGED) {   //值改变事件
    //    lv_obj_t* list = lv_event_get_user_data(e);  //获取事件用户数据
    //    if (lv_obj_has_state(sw, LV_STATE_CHECKED))
    //        lv_obj_add_flag(list, LV_OBJ_FLAG_SCROLL_ONE); // 开启滚动一屏功能
    //    else
    //        lv_obj_clear_flag(list, LV_OBJ_FLAG_SCROLL_ONE);// 关闭滚动一屏功能

    //}

}

static void lv_example_scroll_2(void)
{
    lv_obj_t* panel = lv_obj_create(lv_scr_act()); //创建当前活动界面对象
     lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x343247), 0);
    lv_obj_set_size(panel, 240, 280);  // 设置大小
    lv_obj_set_scroll_snap_y(panel, LV_SCROLL_SNAP_CENTER); //设置x方向滚动snap特性
    lv_obj_set_flex_flow(panel, LV_FLEX_FLOW_COLUMN); // 设置LV_FLEX_FLOW_ROW方式
    lv_obj_align(panel, LV_ALIGN_CENTER, 0, 0); // x居中，y居中向下20像素对齐
     int i;
    for(i = 0; i < 3; i++) {
        lv_obj_t* btn = lv_btn_create(panel);  // 创建button对象
        lv_obj_set_size(btn, 239, 279); //设置大小
        lv_obj_t* label = lv_label_create(btn); //创建label
        if (i == 3) {
            lv_label_set_text_fmt(label, "Panel %d\nno snap", i); //设置文字内容
            lv_obj_clear_flag(btn, LV_OBJ_FLAG_SNAPPABLE); //清除snap特性
        }
        else {
            lv_label_set_text_fmt(label, "Panel %d", i); //设置文字内容
        }
        lv_obj_center(label); //居中显示
    }
    lv_obj_update_snap(panel, LV_ANIM_ON); //开启snap动画
#if LV_USE_SWITCH
    // /*Switch between "One scroll" and "Normal scroll" mode*/
    // lv_obj_t* sw = lv_switch_create(lv_scr_act()); // 创建switch对象
    // lv_obj_align(sw, LV_ALIGN_TOP_RIGHT, -20, 10); // 顶部右对齐
    // lv_obj_add_event_cb(sw, sw_event_cb, LV_EVENT_ALL, panel); // 开关事件设置
    // lv_obj_t* label = lv_label_create(lv_scr_act());  // 创建label
    // lv_label_set_text(label, "One scroll"); // 显示文字
    // lv_obj_align_to(label, sw, LV_ALIGN_OUT_BOTTOM_MID, 0, 5);// 对齐到switch开关
#endif
}


lv_obj_t * container_create(lv_obj_t * parent)
{
    lv_obj_t *cont = lv_obj_create(parent);
    lv_obj_clear_flag(cont,LV_OBJ_FLAG_CLICKABLE);
    lv_obj_clear_flag(cont, LV_OBJ_FLAG_SCROLL_ELASTIC);
    lv_obj_remove_style_all(cont);
    return cont;


}
#define LV_DEMO_MUSIC_HANDLE_SIZE 40
void lv_unlock_page()
{
    lv_obj_t *  cont = container_create(lv_scr_act());
    lv_obj_set_style_bg_color(lv_scr_act(), lv_color_hex(0x21dfdd), 0);
    lv_obj_set_size(cont,240,280);
    lv_obj_set_style_bg_color(cont,lv_color_hex(0x343247), 0);
    lv_obj_set_scroll_snap_y(cont,LV_SCROLL_SNAP_CENTER);
    lv_obj_t* player = lv_obj_create(cont);
          lv_obj_set_y(player, -LV_DEMO_MUSIC_HANDLE_SIZE);
    lv_obj_set_size(player, LV_HOR_RES, 2 * LV_VER_RES + LV_DEMO_MUSIC_HANDLE_SIZE * 2);
    lv_obj_clear_flag(player, LV_OBJ_FLAG_SNAPABLE);
    lv_obj_set_style_bg_color(player, lv_color_hex(0xffffff), 0);
    lv_obj_set_style_border_width(player, 0, 0);
    lv_obj_set_style_pad_all(player, 0, 0);
    lv_obj_set_scroll_dir(player, LV_DIR_VER);
}

void lv_app_entry(void)
{

    lv_example_scroll_2();
    //lv_unlock_page();
}